# 使用官方的Ubuntu 20.04镜像作为基础。如果不是特殊要求，可以直接拉取 alpine的go docker pull golang:alpine3.19
FROM ubuntu:20.04

# 安装基本工具
RUN apt-get update && apt-get install -y \
    curl \
    wget \
    git \
    && rm -rf /var/lib/apt/lists/*

# 下载并安装Go 1.21
RUN wget https://mirrors.aliyun.com/golang/go1.21.6.linux-amd64.tar.gz && \
    tar -C /usr/local -xzf go1.21.6.linux-amd64.tar.gz && \
    rm go1.21.6.linux-amd64.tar.gz

# 配置Go的环境变量
ENV PATH="/usr/local/go/bin:${PATH}"
ENV GOPATH="/go"
ENV PATH="${GOPATH}/bin:${PATH}"

ENV GOPROXY=https://goproxy.cn,direct
ENV GO111MODULE=on

# 设置工作目录
WORKDIR /app

# 将本地文件拷贝到镜像中
COPY . .

# 映射端口
EXPOSE 2830

# 最好在镜像里面构建，构建完了容器里直接执行可执行文件即可。
RUN go build ./
CMD ["/app/flamego-study"]

# 运行程序的时候加载依赖和编译，最后运行应用
#CMD ["go", "run", "main.go"]
